package com.snda.lib.http;

/*
 * Http Task的侦听接口
 */
public interface ITaskListener {

	/**
	 * 获取下载任务的总的字节数
	 * 
	 * @param nTotalSize
	 */
	void OnGetSize(long nTotalSize);

	/**
	 * 在启动下载任务之后调用
	 * 
	 * @param strUrl
	 *            需要下载的文件的URL
	 * 
	 * @param nFinishedSize
	 *            已经下载完成的字节数
	 * 
	 * @return 如果需要继续下载，则返回true，否则返回false
	 */
	boolean OnStartTask(String strUrl, String strSavePath);

	/**
	 * 通知下载任务开始
	 * 
	 * @param strUrl
	 *            需要下载的文件的URL
	 * 
	 * @param nFinishedSize
	 *            已经下载完成的字节数
	 */
	void OnBeginTask(String strUrl, long nFinishedSize, String strSavePath);

	/**
	 * 通知下载进度
	 * 
	 * @param nFinishedSize
	 *            通知已经完成的字节数目
	 */
	void OnNotifyProcess(long nFinishedSize);

	/**
	 * 通知已经全部下载完毕，不需要进行任何下载
	 * 
	 * @param strDownloadPath
	 *            已经下载的文件的路径
	 */
	void OnAlreadyDownload(long nTotalSize,String strDownloadPath);

	/**
	 * 通知下载已经完成，如果是下载，则strPath为下载文件的保存路径
	 */
	void OnFinishedTask(String strDownloadPath);

	/**
	 * 通知下载过程中失败
	 * 
	 * @param nErrorCode
	 *            错误码
	 * 
	 * @param strErrMsg
	 *            错误描述信息
	 */
	void OnFailed(int nErrorCode);

	/**
	 * 用户主动取消
	 */
	void OnCancel();
}
